package com.jinsi.service.impl;

import com.jinsi.mapper.EquipcateMapper;
import com.jinsi.pojo.EquipCate;
import com.jinsi.pojo.TreeNode;
import com.jinsi.service.EquipcateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class EquipcateServiceImpl implements EquipcateService {


    @Autowired
    private EquipcateMapper equipcateMapper;

    @Override
    public List<TreeNode> getTree(int pid) {

        List<TreeNode> nodes = new ArrayList<>();

        List<EquipCate> cates = equipcateMapper.getEquipCateByPid(pid);
        for (EquipCate equipCate:cates){
            TreeNode treeNode = new TreeNode();
            treeNode.setId(equipCate.getId());
            treeNode.setTitle(equipCate.getCateName());

            List<TreeNode> childS = getTree(equipCate.getId());
            treeNode.setChildren(childS);
            treeNode.setSpread(true);

            nodes.add(treeNode);

        }

        return nodes;
    }

    @Override
    public void updateTreeName(TreeNode treeNode) throws Exception{

        int num = equipcateMapper.updateCate(treeNode.getTitle(),
                treeNode.getId());
        if(num ==  0){
            throw new Exception();
        }


    }

    @Override
    public void delTreeNode(int id) throws Exception {

        int i = equipcateMapper.updateIsDel(id);
        if(i == 0){
            throw new Exception();
        }
    }

    @Override
    public void addTreeNode(EquipCate equipCate) throws Exception {

        int i = equipcateMapper.insertEquipCate(equipCate);
        if(i == 0){
            throw new Exception();
        }
    }

}
